Solid state storage cells, including NAND flash memories, are increasingly gaining market share in both enterprise and consumer data storage solutions. They are resilient to shock and their I/O performance is better than that of conventional hard disk drives. A NAND flash memory is divided into many blocks and each block is divided into many pages. A page contains data for multiple logic block addresses (LBAs), which are the smallest memory unit that can be accessed by the host device.
Unlike dynamic random access memory (DRAM) and/or magnetic storage drives, NAND flash memories do not support in-place updates. Because of this, a garbage collection operation is used to keep storage efficient. The garbage collection operation needs to be scheduled efficiently to keep the storage device efficient.